package cn.cttic.base.api.domain.bo;

import cn.cttic.base.api.domain.BaseFieldWorkProcess;
import cn.cttic.common.mybatis.core.domain.BaseEntity;
import cn.cttic.common.core.validate.AddGroup;
import cn.cttic.common.core.validate.EditGroup;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;

/**
 * 外业序列业务对象 base_field_work_process
 *
 * @author Times.Studio
 * @date 2024-09-17
 */
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = BaseFieldWorkProcess.class, reverseConvertGenerate = false)
public class BaseFieldWorkProcessBo extends BaseEntity {

    /**
     *
     */
    @NotBlank(message = "不能为空", groups = { EditGroup.class })
    private String id;

    /**
     * 外业工作规范
     */
    @NotBlank(message = "外业工作规范不能为空", groups = { AddGroup.class, EditGroup.class })
    private String groupId;

    /**
     * 外业工作规范名称
     */
    @NotBlank(message = "外业工作规范名称不能为空", groups = { AddGroup.class, EditGroup.class })
    private String groupName;

    /**
     * 步骤内部分组序号
     */
    @NotNull(message = "步骤内部分组序号不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer stepGroupIndex;

    /**
     * 步骤内部分组标识
     */
    @NotBlank(message = "步骤内部分组标识不能为空", groups = { AddGroup.class, EditGroup.class })
    private String stepGroupId;

    /**
     * 步骤内部分组编码
     */
    @NotBlank(message = "步骤内部分组编码不能为空", groups = { AddGroup.class, EditGroup.class })
    private String stepGroupCode;

    /**
     * 步骤名称
     */
    @NotBlank(message = "步骤名称不能为空", groups = { AddGroup.class, EditGroup.class })
    private String stepName;

    /**
     * 步骤序号
     */
    @NotNull(message = "步骤序号不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer stepIndex;

    /**
     * 数据采集类型
     */
    @NotNull(message = "数据采集类型不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer dataType;

    /**
     * 数据采集量
     */
    @NotNull(message = "数据采集量不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer dataCount;

    /**
     * 内页数据类型
     */
    @NotNull(message = "内页数据类型不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer interiorDataType;


}
